#include "stdio.h"
#define MaxSize 100
typedef int DataType;
typedef struct {
	DataType List[MaxSize];
	int size;
}SeqList;
void ListInitiate(SeqList*L)
{
	L->size = 0;
}
int ListLength(SeqList L) {
	return L.size;
}
int ListInsert(SeqList *L, int i, DataType x)
{
	int j;
	if (L->size >= MaxSize)
	{
		printf("顺序表已满无法插入! \n");
		return 0;
	}
	else if (i < 0 || i > L->size)
	{
		printf("参数i不合法! \n");
		return 0;
	}
	else
	{
		for (j = L->size; j > i; j--) L->List[j] = L->List[j - 1];
		L->List[i] = x;
		L->size++;
		return 1;
	}
}


int ListDelete(SeqList*L, int i, DataType *x) {
	int j;
	if (L->size <= 0) {
		printf("顺序表无可删\n");
		return 0;
	}
	else if (i < 0 || i > L->size - 1) {
		printf("参数i不合法");
		return 0;
	}
	else
	{
		*x = L->List[i];
		for (j = i + 1; j <= L->size - 1; j++)
			L->List[j - 1] = L->List[j];
		L->size--;
		return 1;
	}
}

int ListGet(SeqList L, int i, DataType *x) {
	if (i < 0 || i > L.size - 1) {
		printf("参数i不合法！\n");
		return 0;
	}
	else
	{
		*x = L.List[i];
		return 1;
	}
}

int ListSearch(SeqList L, DataType x) {
	int i;
	for (i = 0; i < L.size; i++) {
		if (L.List[i] == x)
			return i;
	}
	return -1;
}
int main(int argc, char * argv[]) {
	SeqList myList;
	int i, x;
	ListInitiate(&myList);
	for (i = 0; i < 10; i++)
		ListInsert(&myList, i, i + 1);
	ListDelete(&myList, 4, &x);
	for (i = 0; i < ListLength(myList); i++) {
		ListGet(myList, i, &x);
		printf("%d", x);
	}
	printf("\n");
	int a = ListSearch(myList, 9);
	printf("9Ϊ%d\t", a);
	a = ListSearch(myList, 11);
	printf("11的索引为%d", a);
	return 0;
}